package scanner

import (
	"time"

	"gitee.com/mkwchecking/sr-admin/pkg/file/visit"
)

type BaseAny struct {
	RootPath string `json:"rootPath"` // 根路径(扫描时传入的路径作为根路径)
	Path     string `json:"path"`     // 文件路径
	Name     string `json:"name"`     // 文件名
}

// BaseFile 基础文件
type BaseFile struct {
	BaseAny

	Ext        string         `json:"ext"`        // 文件后缀
	Size       int64          `json:"size"`       // 文件大小
	Hash       string         `json:"hash"`       // 文件哈希值
	FileType   visit.FileType `json:"fileType"`   // 文件类型
	ModTime    time.Time      `json:"modTime"`    // 文件修改时间
	Author     string         `json:"author"`     // 文件作者
	OriginPath string         `json:"originPath"` // 文件原始路径
}

// ImageFile 图片文件
type ImageFile struct {
	BaseFile

	ThumbPath string `json:"thumbPath"` // 缩略图路径 (图片/视频)
	Width     int    `json:"width"`     // 视频宽度
	Height    int    `json:"height"`    // 视频高度
}

// VideoFile 视频文件
type VideoFile struct {
	BaseFile
	CoverPath   string `json:"coverPath"`   // 封面图路径 (图片/视频)
	PreviewPath string `json:"previewPath"` // 预览视频路径 (图片/视频)
	Width       int    `json:"width"`       // 视频宽度
	Height      int    `json:"height"`      // 视频高度
	Duration    int    `json:"duration"`    // 视频时长
	Codec       string `json:"codec"`       // 视频编码
	BitRate     int    `json:"bitRate"`     // 视频码率
}

// DocFile 文档文件
type DocFile struct {
	BaseFile

	PageCount int `json:"pageCount"` // 页数(ppt/pdf)
	WordCount int `json:"wordCount"` // 字数(word/text)
}

// CodeFile 代码文件
type CodeFile struct {
	BaseFile
	Lang string `json:"lang"` // 语言
}
